package 抽象语法树遍历器;

import 抽象语法树类.*;
import 抽象语法树类.表达式类.二元表达式类.*;
import 抽象语法树类.语句类.*;
import 抽象语法树类.表达式类.*;
import 抽象语法树类.字面量类.*;

public class 抽象语法树监听器 {

    public void 进入代码块(代码块 代码块) {}

    public void 离开代码块(代码块 代码块) {}

    public void 进入函数定义(函数定义 函数定义) {}

    public void 离开函数定义(函数定义 函数定义) {}

    public void 进入变量定义(变量定义 变量定义) {}

    public void 离开变量定义(变量定义 变量定义) {}

    public void 进入抽象语法树(抽象语法树 抽象语法树) {}

    public void 离开抽象语法树(抽象语法树 抽象语法树) {}

    public void 进入程序节点(程序节点 程序节点) {}

    public void 离开程序节点(程序节点 程序节点) {}

    public void 进入符号引用(符号引用 符号引用) {}

    public void 离开符号引用(符号引用 符号引用) {}

    public void 进入结构体定义(结构体定义 结构体定义) {}

    public void 离开结构体定义(结构体定义 结构体定义) {}


    // 语句类
    public void 进入语句(语句 语句) {}

    public void 离开语句(语句 语句) {}

    public void 进入If语句(If语句 If语句) {}

    public void 离开If语句(If语句 If语句) {}

    public void 进入While语句(While语句 While语句) {}

    public void 离开While语句(While语句 While语句) {}

    public void 进入函数调用语句(函数调用语句 函数调用语句) {}

    public void 离开函数调用语句(函数调用语句 函数调用语句) {}


    public void 进入打印语句(打印语句 打印语句) {}

    public void 离开打印语句(打印语句 打印语句) {}


    public void 进入赋值语句(赋值语句 赋值语句) {}

    public void 离开赋值语句(赋值语句 赋值语句) {}

    public void 进入返回语句(返回语句 返回语句) {}

    public void 离开返回语句(返回语句 返回语句) {}


    // 表达式类

    public void 进入表达式(表达式 表达式) {}
    
    public void 离开表达式(表达式 表达式) {}
    
    public void 进入实例化表达式(实例化表达式 实例化表达式) {}

    public void 离开实例化表达式(实例化表达式 实例化表达式) {}

    public void 进入成员访问表达式(成员访问表达式 成员访问表达式) {}

    public void 离开成员访问表达式(成员访问表达式 成员访问表达式) {}


    // 表达式类.二元表达式类

    public void 进入二元表达式(二元表达式 二元表达式) {}

    public void 离开二元表达式(二元表达式 二元表达式) {}

    public void 进入乘法表达式(乘法表达式 乘法表达式) {}

    public void 离开乘法表达式(乘法表达式 乘法表达式) {}

    public void 进入减法表达式(减法表达式 减法表达式) {}

    public void 离开减法表达式(减法表达式 减法表达式) {}

    public void 进入判等表达式(判等表达式 判等表达式) {}

    public void 离开判等表达式(判等表达式 判等表达式) {}

    public void 进入加法表达式(加法表达式 加法表达式) {}

    public void 离开加法表达式(加法表达式 加法表达式) {}

    public void 进入小于表达式(小于表达式 小于表达式) {}

    public void 离开小于表达式(小于表达式 小于表达式) {}


    // 字面量类

    public void 进入字面量(字面量 字面量) {}

    public void 离开字面量(字面量 字面量) {}

    public void 进入字符型字面量(字符型字面量 字符型字面量) {}

    public void 离开字符型字面量(字符型字面量 字符型字面量) {}

    public void 进入整数型字面量(整数型字面量 整数型字面量) {}

    public void 离开整数型字面量(整数型字面量 整数型字面量) {}

    public void 进入文本型字面量(文本型字面量 文本型字面量) {}

    public void 离开文本型字面量(文本型字面量 文本型字面量) {}

    public void 进入浮点型字面量(浮点型字面量 浮点型字面量) {}

    public void 离开浮点型字面量(浮点型字面量 浮点型字面量) {}

}
